package com.frame.work.frame.deal.device0faa;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.frame.work.common.util.JsonToMqtt;
import com.frame.work.frame.deal.base.BaseFrame;
import lombok.Data;
import org.apache.commons.lang3.StringUtils;

import java.util.Map;

/**
 * 光速语音控制器
 *
 * @author wjming
 */
@Data
public class SolVoice0Faa8a11 extends BaseFrame {
    /**
     * 是否支持通用绑定
     */
    private String switchState;
    private String spreadingType;
    /**
     * 开关数量数量
     */
    private String switchCount;

    /**
     * 场景数量
     */
    private String sceneCount;

    /**
     * 场景触发
     */
    private String sceneTrigger;

    /**
     * 开关状态A-D
     */
    private String switchStateA;
    private String switchStateB;
    private String switchStateC;
    private String switchStateD;
    /**
     * 温度
     */
    private String template;

    /**
     * 湿度
     */
    private String humidity;
    /**
     * 光照
     */
    private String illumination;

    /**
     * 空调开关状态
     */
    private String switchStateAc;

    /**
     * 空调模式
     */
    private String modeAc;

    /**
     * 空调风速
     */
    private String windAc;

    /**
     * 空调温度
     */
    private String templateAc;

    /**
     * 光速语音控制器
     *
     * @param gatewayMac
     * @param data
     */
    public SolVoice0Faa8a11(String gatewayMac, String data) {
        super(gatewayMac, data);
        getAcState(data);
        Map<String, Object> map = JSONObject.parseObject(JSON.toJSONString(this));
        this.setActions(map);
        //处理好的json对象
        String json = JSONObject.toJSONString(this);
        JsonToMqtt.sendMQTT(gatewayMac, json);
    }

    /**
     * 获取空调状态
     */
    private void getAcState(String data) {
        //获取联动信息
        this.spreadingType = StringUtils.substring(data, 38, 40);
        //开关数量
        this.switchCount = Integer.parseInt(StringUtils.substring(data, 46, 48)) + "";
        //场景数量
        this.sceneCount = Integer.parseInt(StringUtils.substring(data, 48, 50)) + "";
        //场景触发 00-无场景触发，非00-对应编号场景触发
        this.sceneTrigger = StringUtils.substring(data, 58, 60);
        //开关状态A
        this.switchStateA = StringUtils.substring(data, 60, 62);
        //开关状态b
        this.switchStateB = StringUtils.substring(data, 62, 64);
        //开关状态C
        this.switchStateC = StringUtils.substring(data, 64, 66);
        //开关状态D
        this.switchStateD = StringUtils.substring(data, 66, 68);
        //获取室内温度
        this.template = StringUtils.substring(data, 68, 72);
        this.humidity = StringUtils.substring(data, 72, 76);
        //室内光照
        this.illumination = StringUtils.substring(data, 76, 80);

        this.switchStateAc = StringUtils.substring(data, 80, 82);
        this.modeAc = StringUtils.substring(data, 82, 84);
        this.windAc = StringUtils.substring(data, 84, 86);
        this.templateAc = StringUtils.substring(data, 86, 88);
        this.switchState = switchStateAc;
    }

}




